在数据库设计中字段尽量不要默认允许为NULL,因为NUll这个值太特殊了,最近在一个项目中再次掉如这个坑中。
简单描述一下我们遇到的问题:
数据表A的字段a类型为varchar,默认允许NULL,然后在程序中有一个业务需求的SQL语句是这个
SELECT * FROM A WHERE a != 'something' ,
原本期待的是这个SQL语句会按照我们期望的结果执行,查询出所有a不等于something的执行,然后实际上并不是如此。该SQL语句只查询出了a不能与NULL且不等于something的数据。后来查询才明白,因为NULL和任何其他值比较都是FALSE


ljyf5593
232 声望1 粉丝